package cl.zeke.cursos.jsf2spring3jpa2.vista.managedbeans.ejercicio5;

import cl.zeke.cursos.jsf2spring3jpa2.negocio.entities.Persona;
import cl.zeke.cursos.jsf2spring3jpa2.negocio.services.Ejercicio5PersonaService;
import cl.zeke.java.commons.jsf2.Jsf2Util;
import java.io.IOException;
import java.io.Serializable;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.context.FacesContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

@Component
@Scope("view")
public class Ejercicio5Pag1Bean implements Serializable {
    
    private static Logger log = LoggerFactory.getLogger(Ejercicio5Pag1Bean.class);
    
    @Autowired
    private Ejercicio5PersonaService ejercicio5PersonaService;
    
    private List<Persona> personaList;
    
    private Persona personaSelected;
    
    @PostConstruct
    public void iniciar() {
        //para evitar bug de primefaces
        if(FacesContext.getCurrentInstance().isPostback()) {
            return;
        }
        log.debug("iniciando ejercicio 5 página 1");
        personaList = ejercicio5PersonaService.traerTodasPersonas();
    }
    
    public String irEditar(Persona p) throws IOException {
        log.debug("ir a editar persona");
        Jsf2Util.setRequestAttribute("persona", p);
        Jsf2Util.addInfoMessage("Sobrevivi!");
        return "/ejercicio5/pagina2.xhtml";
    }
    
    /*getters and setters*/

    public List<Persona> getPersonaList() {
        return personaList;
    }

    public void setPersonaList(List<Persona> personaList) {
        this.personaList = personaList;
    }

    public Persona getPersonaSelected() {
        return personaSelected;
    }

    public void setPersonaSelected(Persona personaSelected) {
        this.personaSelected = personaSelected;
    }
}
